package com.freedom.start.sys.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.freedom.start.common.base.BaseCrudEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import java.time.LocalDate;

/**
 * @Author: zhenggang.liu
 * @Date: 2019/12/28 18:27
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserEntity extends BaseCrudEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 所属机构id
     */
    private String orgId;
    /**
     * 登录名
     */
    @NotBlank(message = "用户登录名不能为空")
    private String loginName;
    /**
     * 用户姓名
     */
    @NotBlank(message = "用户姓名不能为空")
    private String name;
    /**
     * 密码
     */
    private String password = "123";
    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;
    /**
     * 性别，0：女，1：男，2：未知
     */
    private Integer sex;
    /**
     * 电话号码
     */
    @Length(max = 11, message = "手机号超长")
    private String phoneNumber;
    /**
     * 邮件
     */
    @Email(message = "邮箱格式错误")
    private String email;
    /**
     * 有效性：0，删除；1，正常
     */
    private int valid = 1;
    /**
     * 用户状态，启用、禁用等
     */
    private String status;

}
